package com.toe.forum.webapi.mapper;

import com.toe.pojo.dto.forum.UserLikeUpdateDTO;
import com.toe.pojo.entity.forum.ForumUserLike;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.toe.pojo.vo.forum.UserLIkeVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * <p>
 * 点赞用户映射表 Mapper 接口
 * </p>
 *
 * @author 陶涛
 * @since 2022-07-19
 */
@Repository
public interface ForumUserLikeMapper extends BaseMapper<ForumUserLike> {

    /**
     * 利用mybatis-plus添加文章分类
     * @param forumCategory
     * int insert(ForumCategory forumCategory);
     * @return
     */

    /***
     * 根据 ID 删除
     * @param id 主键ID
     *  int deleteById(Serializable id);
     * */

    /**
     * 删除指定的点赞记录
     * @param userId
     * @param articleId
     */
    void deleteUserLike(@Param("userId") long userId,@Param("articleId") long articleId);

    /**
     * 更新用户点赞文章映射
     * @param userLikeUpdateDTO
     */
    void updateUserLike(@Param("userLikeUpdateDTO") UserLikeUpdateDTO userLikeUpdateDTO);

    /**
     * 查询所有的用户点赞文章映射
     * @return
     */
    List<UserLIkeVO> selectAllUserLike();

    /**
     * 查询对应文章ID的文章的所有点赞映射
     * @param articleId
     * @return
     */
    List<UserLIkeVO> selectAllUserLikeByArticleId(long articleId);

    /**
     * 查询一条用户点赞文章映射
     * @param userId
     * @param articleId
     * @return
     */
    UserLIkeVO selectOneUserLike(@Param("userId") long userId,@Param("articleId") long articleId);

    void deleteByArticleId(Long articleId);
}
